使用 Brook 下载任意 iOS App 的旧版本

您所在的位置:网站首页 ipad 安装历史版本 使用 Brook 下载任意 iOS App 的旧版本

使用 Brook 下载任意 iOS App 的旧版本

2024-07-11 23:10| 来源: 网络整理| 查看: 265

使用 Brook 下载任意 iOS App 的旧版本

https://www.txthinking.com/talks/ Updated at: 2023-03-16 [email protected]

由 Text to Image 生成

English

目的

从 AppStore 下载旧版本的 App,这里以 YouTube v17.15.1 为例

需要软件 Brook.exe,并且已经安装了 CA iTunes64Setup.exe v12.6.5.3 此链接是从 apple.com 下载。(小提示:仅从软件相关官方网站下载是个好习惯)

😉 理论上在 macOS 也行,但我没找到对应版本 iTunes 的下载地址

登录 iTunes 并设置下载无需密码 断开 Brook iTunes 菜单 -> 账户 -> 登录 iTunes 菜单 -> 编辑 -> Preferences -> Store -> Purchases: Never Require. Free Downloads: Never Require

😡 因为苹果的认证服务端会屏蔽很多商业 IP,所以我们提前登录和设置以避免未来的认证请求。

我们需要找到两个东西 appid: App ID versionid: 历史版本 ID 找到 App ID 和历史版本 ID 列表

Brook:开启 Fake DNS;关闭 Bypass;开启 Programmable;开启 TUN;Script 填入:

https://raw.githubusercontent.com/txthinking/bypass/master/ipa/history.tengo

text := import("text") f := func(){ if in_address { if in_address.domainaddress && text.has_suffix(in_address.domainaddress, "-buy.itunes.apple.com:443") { return { mitm:true, mitmprotocol: "https", mitmwithbody: true, mitmautohandlecompress: true } } return } if in_httprequest && !in_httpresponse { return in_httprequest } if in_httprequest && in_httpresponse { return in_httpresponse } } out := f()

连接 Brook。然后从 iTunes 里下载 YouTube iPhone App。

MITM 日志里,你应该能看到一个 POST https://p52-buy.itunes.apple.com/WebObjects/MZBuy.woa/wa/buyProduct,body 里即是。

😉 域名不一定和上面完全一样

appid: body 里的 songId 即是。这里是 544007664

versionid: body 里的 softwareVersionExternalldentifiers 即是

😉 这是个列表,你可以先全部保存下来

从历史版本 ID 列表找到指定的版本 ID

历史版本 ID ,是这样的 848374799,怎么知道哪个版本 ID 对应的是 v17.15.1 呢?

历史版本 ID 列表是顺序排列的,自己跳跃着下载下来看看,相信以你的聪明才智一会就能找到想要的版本。视频里有我找的过程。

下载旧版本 App

Brook:开启 Fake DNS,关闭 Bypass,开启 Programmable,开启 TUN,Script 填入:

😡 注意:请自己 fork 修改脚本内的 appid 和 versionid 两个变量

https://raw.githubusercontent.com/txthinking/bypass/master/ipa/downgrade.tengo

appid := "544007664" // YouTube versionid := "848374799" // v17.15.1 text := import("text") f := func(){ if in_address { if in_address.domainaddress && text.has_suffix(in_address.domainaddress, "-buy.itunes.apple.com:443") { return { mitm:true, mitmprotocol: "https", mitmwithbody: true, mitmautohandlecompress: true } } return } if in_httprequest && !in_httpresponse { if in_httprequest["Method"] == "POST" && text.contains(in_httprequest["URL"], "/WebObjects/MZBuy.woa/wa/buyProduct") { s := string(in_httprequest["Body"]) if text.contains(s, ""+appid+"") { in_httprequest["Body"] = bytes(text.re_replace(`appExtVrsId\s*\d+`, s, "appExtVrsId\n"+versionid+"")) } } return in_httprequest } if in_httprequest && in_httpresponse { return in_httpresponse } } out := f()

断开 Brook,重新连接。

从 iTunes 资料库 Library 右键删除刚才下载 YouTube App。重新下载 YouTube iPhone App。从资料库 Library 能看到已经下载的旧版本 YouTube,右键可以查看 ipa 位置。

安装 ipa 文件到手机

这里使用 ideviceinstaller,macOS 有 brew 可以直接安装。Windows 不想自己编译的话,这里有编译好的,用这个吧先。

😡 必须是同一个 Apple ID

先卸载 iPhone 上的 YouTube 把 iPhone USB 连线到 Windows

我用的是 GitBash

git clone https://github.com/iFred09/libimobiledevice-windows.git cd libimobiledevice-windows ./ideviceinstaller.exe --install ~/Music/iTunes/iTunes\ Media/Mobile\ Applications/YouTube\ 17.15.1.ipa

遇到的情况分享一下:

ideviceinstaller 提示 Could not connect to lockdownd. Exiting.,我重新插拔了几次 USB 就可以了 视频

https://www.youtube.com/watch?v=JtjIz-DldhA

也可以无需服务端

从 这里 往下看



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3